// src/utils/request.js
import axios from "axios";
import { ElMessage } from "element-plus"; // 引入 Element Plus 消息提示

// 创建 Axios 实例
const request = axios.create({
  baseURL: "", // 基础路径（如果后端接口有统一前缀，可在此配置，如 '/api'）
  timeout: 5000, // 请求超时时间
  headers: {
    "Content-Type": "application/json",
    "Access-Control-Allow-Origin": "*",
    "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type, Authorization",
  },
});

// 请求拦截器（可选，用于添加 token 等）
request.interceptors.request.use(
  (config) => {
    // 示例：从本地存储获取 token 并添加到请求头
    // const token = localStorage.getItem('token')
    // if (token) {
    //   config.headers.Authorization = `Bearer ${token}`
    // }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器（处理错误提示）
request.interceptors.response.use(
  (response) => {
    // 后端返回的 Result 结构：{ code, message, data }
    const res = response.data;
    if (res.code !== 200) {
      // 错误提示
      ElMessage.error(res.message || "请求失败");
      return Promise.reject(new Error(res.message || "请求失败"));
    }
    return res;
  },
  (error) => {
    // 网络错误等
    if (error.response && error.response.status === 0) {
      ElMessage.error("CORS错误：请检查后端服务器配置");
    } else {
      ElMessage.error("网络错误，请稍后重试");
    }
    return Promise.reject(error);
  }
);

export default request;
